/**
 * 
 */
package mx.com.asteca.servicio.impl;

import mx.com.asteca.comun.Constantes;
import mx.com.asteca.comun.dto.InstitutoDTO;
import mx.com.asteca.persistencia.PersistenciaException;
import mx.com.asteca.persistencia.dao.BaseDAO;
import mx.com.asteca.persistencia.dao.InstitutoDAO;
import mx.com.asteca.persistencia.entidades.InstitutoPuestos;
import mx.com.asteca.persistencia.entidades.Institutos;
import mx.com.asteca.servicio.InstitutoServicio;
import mx.com.asteca.servicio.ServicioException;
import mx.com.asteca.servicio.assembler.Assembler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author JAMARO
 *
 */
@Service
public class InstitutoServicioImpl extends
		BaseServiceImpl<InstitutoDTO, Integer, Institutos> implements
		InstitutoServicio {

	@Autowired
	private InstitutoDAO daoInstituto;
	
	@Autowired
	@Qualifier(Constantes.ASSEMBLER_INSTITUTO)
	private Assembler assemblerInstituto;
	
	@Override
	BaseDAO getDAO() {
		return daoInstituto;
	}

	@Override
	Assembler getAssembler() {
		return assemblerInstituto;
	}
	
	
	@Override
	@Transactional
	public void updateInstitutoPuesto(int idPuesto, String nombre) throws ServicioException{
		InstitutoPuestos mapping = new InstitutoPuestos();
		mapping.setIdPuesto((short) idPuesto);
		mapping.setNombre(nombre);
		try {
			daoInstituto.updatePuesto(mapping);
		} catch (PersistenciaException e) {
			throw new ServicioException("Error en updateInstitutoPuesto:"+e.getMessage(), e);
		}
	}

}
